package com.gitee.zw.rule.vo;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Data;
import org.hibernate.annotations.JdbcTypeCode;
import org.hibernate.type.SqlTypes;

import java.io.Serializable;
import java.util.Map;

/**
 * 规则域定义，定义规则域的基本信息，取数出数的参数等
 *
 * @author WeiYZZhou
 */
@Entity
@Data
@Table(name = "ri_rule_domain")
public class RuleDomain implements Serializable {
    @Id
    private String code;
    private String name;
    private String description;
    /**
     * 输入类名，如果为空，则输入引擎的数据不做类型转换
     */
    private String factClass;
    /**
     * 输出类名，返回的结果会按本类名过滤。如果为空，则不对输出的对象做过滤，也就是说输入的对象就是输出对象
     */
    private String outClass;
    /**
     * 如：SQL, REST, HADOOP, FILE
     */
    private String dataAccessType;
    /**
     * 读取数据时的过滤参数
     */
    @JdbcTypeCode(SqlTypes.JSON)
    private Map<String, Object> dataImpParams;
    /**
     * 输出数据时的过滤参数
     */
    @JdbcTypeCode(SqlTypes.JSON)
    private Map<String, Object> dataExpParams;
}
